import observe from "./observe";

// 数据响应式处理
function defineReactiveData(data, key, value) {
  // 递归观察，value可能数组、对象
  observe(value);

  Object.defineProperty(data, key, {
    get() {
      console.log('响应式数据: 获取', value);
      return value;
    },
    set(newVal) {
      console.log('响应式数: 设置', newVal);
      if (newVal === value) return;
      observe(newVal); // 设置的新值可能也是数组或对象
      value = newVal;
    }
  })
}

export default defineReactiveData;